#include <unistd.h>
#include <stdio.h>
#include <string.h>


#define NUM 101
#define STYLE '='


int main()
{
    const char* lable = "|/-\\";//旋转字符样式
    int len = strlen(lable);//数组长度

    char bar[NUM];//进度条主干
    memset(bar,0,sizeof(bar));//初始化

    int cnt = 0;//计数器，进度条从1-100

    while(cnt <= 100)
    {
        //每一次进度条变化都重新打印一次
        printf("[%-100s][%d%%][%c]\r",bar,cnt,lable[cnt%len]);
        fflush(stdout);//刷新缓冲区

        bar[cnt] = STYLE;//每一次都在主干数组中加1
        cnt++;

        //最后一次
        if(cnt == NUM)
        {
            bar[cnt-1] = '\0';
            printf("[%-100s][%d%%][%c]\r",bar,cnt-1,lable[(cnt-1)%len]);
            break;
        }

        bar[cnt] = '>';//不是最后一次之前，进度条有一个向右走的标志

        usleep(50000);
    }

    printf("\r\n");//最后进度条走完，刷新

    return 0;
}
